From b4b23580a61bd9694e178a1a6b16bcb783fd9013 Mon Sep 17 00:00:00 2001 From: Carlos Garnacho Date: Mon, 16 Mar 2015 13:46:14 +0100 Subject: [PATCH] window: Protect against popover destruction on ::unmap On popover_unmap(), perform the gtk_widget_unmap() call last, so the GtkWindowPopover data is ensured to be alive throughout the function if the popover widget is destroyed right on ::unmap. https://bugzilla.gnome.org/show_bug.cgi?id=745829 --- gtk/gtkwindow.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/gtk/gtkwindow.c b/gtk/gtkwindow.c index 1cac7b39c1..60d66e5c47 100644 --- a/gtk/gtkwindow.c +++ b/gtk/gtkwindow.c @@ -5955,17 +5955,17 @@ static void popover_unmap (GtkWidget *widget, GtkWindowPopover *popover) { - if (popover->window) - { - gtk_widget_unmap (popover->widget); - gdk_window_hide (popover->window); - } - if (popover->unmap_id) { g_signal_handler_disconnect (widget, popover->unmap_id); popover->unmap_id = 0; } + + if (popover->window) + { + gdk_window_hide (popover->window); + gtk_widget_unmap (popover->widget); + } } static void -- 2.30.2